Skip to content

release: promote investigations, billing, and self-hosting to production - #789

Merged
izadoesdev merged 90 commits into
mainfrom
staging
Sep 17, 2026
Merged

izadoesdev merged 90 commits into
mainfrom
staging

Conversation

@izadoesdev

@izadoesdev izadoesdev commented Sep 13, 2026

Copy link
Copy Markdown
Member

Promote the reviewed investigation, conversation, billing, and self-hosting release from staging. Business includes 100 investigations/month for $299; Scale includes 500 for $799; additional completed investigations cost $1. New plan versions include ordinary Databunny chat. Restore the older pricing comparison/table styling and remove conflicting credit offers for included-chat accounts while preserving existing customer terms and paid balances.

Autumn owns investigation reservations, settlement, monthly allowances, and overages. Completed product results and existing job recovery retry the original native hold without another model run or charge. This release has no Postgres investigation billing ledger or accepted-price field. Its database additions are ordinary evidence/reply fields only.

This is the full staged release: investigation and retention improvements (#771, #772, #774#781), conversation tool/schema and reasoning fixes (#782), query discovery recovery (#783), the Balanced conversation default changing from Terra to Luna (#784), and billing/pricing changes (#786#788). Public MCP clients still choose their own model. This is broader than a pricing copy deployment.

Self-hosting

This release includes #803, #804, #805, #806, #808, #814, #815, #816, and #823:

  • Docker Compose setup with a release init image, a short env template, and a dashboard built for the operator's URLs.
  • Direct ClickHouse delivery, local feature access without hosted billing, and disabled Databuddy telemetry. Uptime deliveries survive extended storage outages.
  • Configurable email senders, optional email/AI, and clearer setup, upgrade, and contributor guides.

Combined checks cover fresh/repeated initialization, signup/login, website creation, ingestion, analytics, copied broker/billing keys, and organization permissions. A real Redis check covers delivery recovery beyond the old retry limit and graceful shutdown. The optional status app also passes a production build/start smoke with synthetic local URLs. Root lint, all 33 typecheck tasks, and all 29 test tasks pass.

Validation and promotion gates

Validation completed on the reviewed slices includes root lint, workspace types/tests, native SDK and actual API request regressions, isolated Insights billing/recovery integration tests, and desktop/mobile pricing checks. The settlement regression fails before the fix and recovers the original hold after an outage with one reservation, model call, and delivery. These tests used synthetic Autumn transport; live invoices, monthly resets, and authenticated checkout are not yet verified. Recheck final-head CI, staging deployments, and every review thread before promotion.

Schema readiness passed on September 17 at 08:39 UTC. Independent read-only metadata checks through API, API Staging, Insights, and Slack confirmed all four required product columns: insight_observations.snapshot and insight_replies.source_observation_id, intent, and assistant_text. Types, nullability, and the intent default match the expected schema. The earlier missing-column blocker is cleared.

Promotion still requires final-head CI and review, compatible staging deployments, live billing validation, and the required main-branch approval. The automated staging soak covers API Staging and API/Basket health; dashboard, docs, Insights, and Slack need compatibility checks too. Verify compatible API, dashboard, docs, Insights, and Slack deployments before the targeted live Autumn catalog sync. Catalog publication and the requested account activation are separate follow-up operations; neither happens by merging this PR. Preserve legacy versions, balances, and the account's complimentary base price; do not mass-migrate customers.

After promotion, publish the platform release and verify all versioned service images, including init, on both architectures. Main pushes publish edge; a published release supplies versioned images. Smoke-test Compose with the matching checkout and tag before announcing self-host availability.

AI-assisted implementation and review under the maintainer workflow.

* feat(ai): measure identified profile activation retention

* fix(ai): reject unsupported retention grouping
* feat(insights): measure saved activation and return outcomes

* style(insights): format measurement regression cases

* fix(insights): preserve measured cohort findings through publication

* fix(dashboard): omit unscoped cohort definition link

* fix(insights): finish from sufficient evidence without redundant reads

* Revert "fix(insights): finish from sufficient evidence without redundant reads"

This reverts commit b931b4d.
…gations (#776)

* fix(rpc): validate inherited measurement bindings

* style(dashboard): apply measurement typography utilities

* docs(ci): require resolved PR feedback before merging

* fix(insights): retire obsolete retention observations

* test(insights): exercise retirement with real cache invalidation

* test(insights): close test resources and isolate integration selection
* fix(insights): keep evidence claims with their sources

* fix(insights): decide publication from cited evidence

* fix(dashboard): label investigation resolutions as conclusions

* fix(insights): verify saved recovery checks without model turns
…#779)

* fix(insights): preserve native retention evidence through publication

* fix(insights): resolve unexplained cohort findings without speculative followups

* fix(insights): reject conflicting and misattributed retention evidence

* test(insights): isolate retention scope and persistent conflict checks

* test(insights): simplify retention evidence fixtures
* fix(insights): validate tool-supplied retention comparisons

* fix(insights): avoid redundant retention finish repairs
* feat(insights): add grounded activation-date comparisons

* fix(insights): keep conflicting cohort snapshots private

* fix(insights): preserve complete retention findings

* test(shared): follow cohort iteration style

* fix(insights): align retention copy with the brief budget
* feat(insights): define fixed investigation pricing terms

* refactor(ai): separate usage telemetry from credit billing

* docs(insights): define completed investigation billing and included replies

* feat(insights): retain evidence for included clarifications

* feat(insights): reserve and settle fixed investigation units

* feat(dashboard): add fixed investigation purchases and billing terms

* fix(insights): include preparation in fixed investigation pricing

* fix(insights): require scoped measurements for completed answers

* fix(insights): clarify included repair verification

* fix(insights): preserve exact saved measurement scope in replies

* fix(api): protect investigation grants across checkout shapes

* test(api): exercise investigation purchases through request handling

* fix(insights): retain native readings in mixed evidence claims

* docs(insights): state included verification paths

* feat(insights): include saved-evidence replies in investigation units

* feat(insights): charge completed investigations and include saved checks

* test(insights): preserve free terminal questions across scan retries

* fix(insights): retain only scoped measurement evidence

* fix(insights): bind new analysis to its accepted price

* fix(insights): make saved evidence limits explicit

* refactor(api): type investigation checkout JSON

* test(api): validate invalid investigation replies over RPC

* test(api): use a billing spy compatible with Bun and Vitest
)

* fix(docs): disclose investigation pricing across entry points

* fix(dashboard): validate event tiers above included allowances

* fix(docs): render event tier ranges and rates accurately

* style(docs): balance pricing introduction text
@vercel

vercel Bot commented Sep 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dashboard (staging) Ready Ready Preview Sep 17, 2026 9:22am UTC
databuddy-status Ready Ready Preview Sep 17, 2026 9:22am UTC
documentation (staging) Ready Ready Preview Sep 17, 2026 9:22am UTC

@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 1d28197d-a4d8-4db4-80d4-f732d9b66b91

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

* fix(ai): expose cross-category query matches with compact discovery

* fix(ai): retain full query contracts after discovery evaluation
@unkey-deploy

unkey-deploy Bot commented Sep 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Unkey Deploy

Name Status Preview Inspect Updated (UTC)
links (preview) Ready Visit Preview Inspect Sep 17, 2026 9:21am

#788)

* fix(dashboard): render native investigation allowances and prices

* feat(rpc): define included monthly investigation allowances

* feat(dashboard): separate monthly and purchased investigations

* fix(api): bypass cache for expanded billing customers

* feat(docs): publish monthly investigation allowances

* fix(dashboard): use native investigation invoice prices

* feat(dashboard): apply monthly investigation allowances and account terms

* fix(rpc): describe included investigations and additional usage

* fix(insights): verify accepted investigation overage price

* feat(rpc): define included Databunny chat entitlement

* feat(rpc): support investigation spending limits

* refactor(docs): simplify included chat and investigation pricing

* feat(api): include entitled Databunny chat without credit charges

* feat(dashboard): include chat on current Autumn plans

* fix(rpc): describe Autumn overage limits as units

* fix(dashboard): simplify included chat billing and collapse controls

* docs(billing): record native overage limit units

* fix(dashboard): reserve space for investigation billing details

* fix(dashboard): show configured plan prices and concise terms

* docs(billing): record schema and deployment prerequisites

* fix(dashboard): retain management of legacy credit add-ons

* fix(rpc): preserve billing controls when customer reads fail

* docs(billing): keep billing state in Autumn

* refactor(docs): simplify public pricing plans and comparisons

* refactor(dashboard): simplify native pricing cards and comparison

* fix(docs): align pricing button fills with corner frames

* style(docs): add restrained pricing interactions

* style(docs): disable pricing button border flicker

* fix(dashboard): add billing feedback and stable loading buttons

* refactor(dashboard): remove unused billing control options

* refactor(api): remove obsolete agent credit access wrapper

* refactor(insights): remove unused coverage data and dead branch

* fix(docs): lead pricing with included investigations

* fix(ci): support older Node in billing browser tests

* test(api): align billing email copy expectations

* refactor(insights): keep investigation billing entirely in Autumn

* fix(dashboard): restore pricing plan card styling

* fix(docs): restore visible pricing comparison table

* fix(insights): retry native settlement before completing jobs
@railway-app
railway-app Bot temporarily deployed to Databuddy / production September 14, 2026 12:51 Inactive
Collapse the two warn paths into one, pass null name and avatar through
as Dub accepts them, and inline the one-use cookie read.
@blacksmith-sh

This comment has been minimized.

@greptile-apps

greptile-apps Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 2/5

This PR is not safe to merge until settlement recovery preserves unconfirmed charges, clarification commits reject stale ownership, and the SDK compatibility alias is restored or handled through an appropriate breaking release.

Findings

  1. P1 Missing Lock Appears Settled
  2. P1 Stale Clarification Proceeds
  3. P1 Compatibility Alias Removed

Summary

This release promotes a broad investigations, conversation, business-context, retention, billing, pricing, SDK, and documentation changeset. The primary merge risks are in investigation settlement recovery, clarification concurrency, and removal of an existing SDK compatibility option.

  • Adds Autumn-native investigation reservations, completion settlement, allowances, overages, and prepaid investigation purchases.
  • Adds saved evidence snapshots, clarification replies, retention measurements, and deterministic verification paths.
  • Moves business-context generation into the API request lifecycle and expands its dashboard editor.
  • Updates Databunny model selection, pricing surfaces, billing controls, public documentation, and ingestion tests.
  • Requires the additive PostgreSQL schema to be applied before compatible services are promoted.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Explicit investigation request] --> B[Resolve Autumn customer]
  B --> C[Reserve investigation_runs unit]
  C --> D[Run analysis]
  D --> E[Persist complete observation and evidence snapshot]
  E --> F[Confirm original Autumn hold]
  F -->|Confirmed| G[Complete run or reply]
  F -->|Unconfirmed| H[Retry settlement from saved result]
  H --> F
  E --> I[Deliver feed and Slack result]
Loading

Reviews (1) · Last reviewed commit: "refactor(ai): fold the tag start check i..."

Comment thread apps/insights/src/investigation-billing.ts
Comment thread apps/insights/src/resume.ts Outdated
Comment thread packages/sdk/src/core/types.ts
* fix(dashboard): honor self-host origins and onboarding settings

* fix(dashboard): skip first-party tracking when self-hosted

* test(dashboard): simplify CSP environment setup

* fix(dashboard): use configured tracking snippets in AI setup prompts

* test(dashboard): cover self-host attribution after staging rebase

* fix(dashboard): skip signup attribution when self-hosted
* fix(api): honor self-hosted email sender settings

* refactor(api): keep self-host setup in its own change

* test(api): reuse outbound alarm coverage

* test(api): isolate alarm sender regression cases
… sibling files

Drops constant snapshots, mock-echo cases, library-behaviour tests, and duplicates across apps and packages; merges same-module test files; adds the dashboard test script; drops the phantom notifications integration script; switches packages/ai tests from vitest to bun:test; fixes the stale website settings expectation.
Five integration files were pinned to throwaway database ports and ran nowhere. They now use the shared Postgres, Redis, and ClickHouse services and are wired into test:integration scripts and CI. Removes the phantom rpc test script entry and adds a test script to packages/auth.
lint:policies now rejects scratch loopback ports in tests, vitest imports in bun packages (and vice versa), packages with unit tests but no test script, and test scripts naming missing files.
The guarded status update can affect no rows when recovery or another
worker moved the reply while the model request was in flight. Return
skipped in that case, matching the analysis path, instead of
invalidating caches and delivering a result the record never took.
* fix(basket): bypass Kafka across self-host delivery services

* fix(uptime): retain self-hosted checks until storage recovers
* fix(rpc): remove hosted billing requirements from self-hosting

* fix(rpc): check self-hosted AI before queuing replies

* test(rpc): isolate missing AI credential cases

* test(rpc): align self-host coverage with repository style

* test(dashboard): isolate environment-sensitive unit tests

* refactor(dashboard): clarify self-hosted investigation actions
* fix(rpc): simplify self-host runtime defaults

* fix(env): keep self-host URL defaults local

* test(ai): use SDK types for self-host telemetry mocks

* fix(dashboard): pass SELFHOST into the browser build as NEXT_PUBLIC_SELFHOST

* test(dashboard): verify self-hosted browser URL defaults

* test(links): isolate environment module mocks
* fix(db): provide containerized self-host schema initialization

* fix(ci): simplify self-host Docker startup

* refactor(ci): trim self-host setup repetition

* docs(ci): move onboarding copy to its own PR

* fix(ci): stop forwarding billing credentials to self-hosted services

* fix(ci): simplify self-host environment setup

* fix(dashboard): hide unconfigured self-host status links

* fix(dashboard): preserve hosted status URL defaults

* refactor(dashboard): keep one self-host build argument
* docs(docs): simplify self-hosting and contributor guides

* docs(docs): correct self-host setup and upgrade guidance

* docs(docs): document simpler self-host defaults

* docs(docs): use the short self-host env template

* docs(docs): clarify optional self-host status pages

* docs(docs): recommend supported Node releases

* docs(docs): enable local development without billing keys

* docs(repo): list the status app build-time URLs for self-hosting
Removes the test and spec exclusions from biome.json, adds a test-file override for rules that are noise in tests (useAwait, noNonNullAssertion, useTopLevelRegex, noNamespaceImport, noBitwiseOperators, noBannedTypes, noThenProperty, noTemplateCurlyInString, useYield, useThrowOnlyError), declares the Bun global, and applies the resulting fixes across 228 test files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant